#ifndef _GLOBALS_H
#define _GLOBALS_H

struct Point2;
class Fx;
class Source;
class Texture;
class Character;
class Rect;
class Object;

#define SND_STEP_GROUND		1
#define SND_LAND_GROUND		2
#define SND_STEP_CONCRETE	3
#define SND_LAND_CONCRETE	4

extern float D_TOUCH;
extern float STAND_TEST;		// double d touch
extern float LOGIC_CYCLE_TIME;
extern float MAX_LOGIC_CYCLE_TIME;

extern int initGlobals();
extern void releaseGlobals();
extern bool loadMenu();
extern bool releaseMenu();
extern Source* createSource(int sound);
extern Source* createSource(int state, int material);
extern void srcPlay(Character* character);
extern Source* createRikSource();
extern Source* createHitSource();
extern Source* createGroundSource();
extern void srcPlay(Object* object, Character* character);

extern Point2 V_UP;
extern Point2 V_DOWN;
extern Point2 V_STAND_TEST;
extern Point2 V_NULL;
extern Point2 V_TMP;
extern Rect RECT_TMP;

extern Fx* FX_RIK;
extern Fx* FX_BANG;
extern Fx* FX_SHOT;

extern Source** SRC_HIT;
extern Source* SRC_NOAMMO;
extern int src_hit_num;
extern Source** SRC_RIK;
extern Source* SRC_SHOTGUN;
extern Source* SRC_GROUND_HIT;
extern Source* SRC_STEP_GRAVEL;
extern Source* SRC_LAND_CONCRETE;
extern Source* SRC_STEP_CONCRETE;

extern Texture* main_menu;
extern Texture* start_game;
extern Texture* exit_game;
extern Texture* cont_game;

extern Rect R_MENU;
extern Rect R_BUTTON;

#endif